Newer
Older
pixi.js / examples / example 2 - SpriteSheet / index.html
@Mat Groves Mat Groves on 2 Mar 2013 2 KB alpha update
<!DOCTYPE HTML>
<html>
<head>
	<title>pixi.js example 2 loading a sprite sheet</title>
	<style>
		body {
			margin: 0;
			padding: 0;
			background-color: #000000;
		}
	</style>
	<script src="pixi.js"></script>
</head>
<body>
	<script>
	
	// create an array of assets to load
	var assetsToLoader = [ "SpriteSheet.json"];
	
	// create a new loader
	loader = new PIXI.AssetLoader(assetsToLoader);
	
	// use callback
	loader.onComplete = onAssetsLoaded
	
	//begin load
	loader.load();
	
	
	// holder to store aliens
	var aliens = [];
	var alienFrames = ["eggHead.png", "flowerTop.png", "helmlok.png", "skully.png"];
	
	var count = 0;
		
	// create an new instance of a pixi stage
	var stage = new PIXI.Stage(0xFFFFFF);;
	
	// create a renderer instance.
	renderer = PIXI.autoDetectRenderer(800, 600);
		
	// add the renderer view element to the DOM
	document.body.appendChild(renderer.view);
	
	// create an empty container
	var alienContainer = new PIXI.DisplayObjectContainer();
	alienContainer.position.x = 400;
	alienContainer.position.y = 300;
	
	stage.addChild(alienContainer);
	
	function onAssetsLoaded()
	{
		
		// create a texture from an image path
		// add a bunch of aliens
		for (var i = 0; i < 100; i++) 
		{
			var frameName = alienFrames[i % 4];
			
			// create an alien using the frame name..
			var alien = PIXI.Sprite.fromFrame(frameName);
			
			/*
			 * fun fact for the day :)
			 * another way of doing the above would be
			 * var texture = PIXI.Texture.fromFrame(frameName);
			 * var alien = new PIXI.Sprite(texture);
			 */
			
			alien.position.x = Math.random() * 800 - 400;
			alien.position.y = Math.random() * 600 - 300;
			alien.anchor.x = 0.5;
			alien.anchor.y = 0.5;
			aliens.push(alien);
			alienContainer.addChild(alien);
		}
		
		// start animating
		requestAnimFrame( animate );
		
		
	}	
	
	function animate() {
	
	    requestAnimFrame( animate );
	
	    // just for fun, lets rotate mr rabbit a little
	    for (var i = 0; i < 100; i++) 
		{
			var alien = aliens[i];
			alien.rotation += 0.1;
		}
		
		count += 0.01;
		alienContainer.scale.x = Math.sin(count)
		alienContainer.scale.y = Math.sin(count)
		
		alienContainer.rotation += 0.01
	    // render the stage   
	    renderer.render(stage);
	}

	</script>

	</body>
</html>